#ifndef _xNodeType_vmclone_H_
#define	_xNodeType_vmclone_H_

#include "xNodeType.h"
#include "xParameterPack.h"


class xNodeType_vmclone : public xNodeType {
	DIVA_VM * _vm ;
	static string valid_rhs_pair[][2];
public:
	xNodeType_vmclone() { _name = "vmclone" ; }

	virtual	void		setupPorts() ;
	virtual string		getType() { return "vmclone"  ; }
	virtual xParameter  toXParameter(string toType, xOutMappingPort * linked_op) ;
	virtual void		createMappedObject();
	virtual string		toMDString(MDSType) ;	
	virtual int         parseMDString(vector<string>& tokens, int start_index);
	virtual bool verify_rhs_link(xOutMappingPort *left, xInMappingPort *right, xNodeType* rightnode);
	virtual bool verify_lhs_link(xOutMappingPort *left, xNodeType* leftnode, xInMappingPort *right);

	virtual bool		update();  // basically when a WOP mapping node is updated, it does nothing
};

#endif 